Auto merge of #2759 - alexcrichton:workspaces, r=brson
authorbors <bors@rust-lang.org>
Tue, 5 Jul 2016 22:42:37 +0000 (15:42 -0700)
committerGitHub <noreply@github.com>
Tue, 5 Jul 2016 22:42:37 +0000 (15:42 -0700)
commitb036f1963c6fdf2ec70f1fdb49df1e44e17f964f
treec327f539110763b03d6951419d8b45854175bca8
parentaec15e3d0076312a2455afe92a8c72625d3b1663
parent58ddb28a4995a9c7e003fffac42a694c2d3ec39b
Auto merge of #2759 - alexcrichton:workspaces, r=brson

Implement workspaces in Cargo

This commit is an implementation of [RFC 1525] which specifies the addition of
**workspaces** to Cargo.

[RFC 1525]: https://github.com/rust-lang/rfcs/blob/master/text/1525-cargo-workspace.md

A workspace is a group of crates which are all compiled into the same output
directory and share the same `Cargo.lock` file. This means that dependencies are
cached between builds as well as dependencies all being shared at the same
versions. An update to any one dependency transitively affects all other members
of the workspace.

Typical repository layouts with a crate at the root and a number of path
dependencies simply need to add the following to the root `Cargo.toml`:

```toml
[workspace]
```

Otherwise more advanced configuration may be necessary through the
`package.workspace` or `workspace.members` keys. More information can be found
as part of [RFC 1525].
src/cargo/core/resolver/mod.rs